import {createApp, h, render} from 'vue';
// h 函数 生成虚拟节点， render 渲染节点
import Message from './Message.vue';

export type MessageType = 'success' | 'error' | 'default'
const createMessage = ( message:string, type: MessageType, time=2000) => {
  // 实例化组件 createApp 第一次个参数组件本身， 第二个 props
  const messageVnode =  h(Message, {
    message,
    type
  })
  // 挂载 mount(dom节点)
  const mountNode = document.createElement('div')
  document.body.appendChild(mountNode)
  // 挂载render 函数去渲染 第一个参数 渲染的节点， 第二个渲染到哪个节点
  render(messageVnode, mountNode)
  // 延迟卸载
  setTimeout(() => {
    // 移除
    render(null, mountNode )
      // 删除节点
      document.body.removeChild(mountNode)
  }, time);
} 
export default createMessage